package info.motteke.mixivoice4j.http;

import info.motteke.mixivoice4j.User;

/**
 * つぶやきのキーを表します。
 *
 * @author Y.Wakamatsu
 *
 */
public class VoiceKey {

    /** つぶやきの発言者です。 */
    private final long userId;

    /** つぶやきの発言時刻です。 */
    private final long postTime;

    /**
     * コンストラクタです。
     * @param user 発言者
     * @param postTime 発言時刻
     */
    public VoiceKey(User user, long postTime){
        this.userId = user.getId();
        this.postTime = postTime;
    }

    @Override
    public int hashCode() {
        final int prime = 31;
        int result = 1;
        result = prime * result + (int) (postTime ^ (postTime >>> 32));
        result = prime * result + (int) (userId ^ (userId >>> 32));
        return result;
    }

    @Override
    public boolean equals(Object obj) {
        if (this == obj)
            return true;
        if (obj == null)
            return false;
        if (getClass() != obj.getClass())
            return false;
        VoiceKey other = (VoiceKey) obj;
        if (postTime != other.postTime)
            return false;
        if (userId != other.userId)
            return false;
        return true;
    }
}
